﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Atendex.Dominio.Interfaces;
using Castle.ActiveRecord;

namespace Atendex.Dominio.ActiveRecord
{
    [ActiveRecord("tipo_solicitacao_curso")]
    [Serializable]
    public class TipoSolicitacaoCursoAR : TipoSolicitacaoAR,
        ITipoSolicitacaoCurso
    {
        private TipoSolicitacaoCursoAR() { }
        internal TipoSolicitacaoCursoAR(string nome, string descricao)
            : base(nome, descricao)
        {
        }

        [JoinedKey("tipo_id")]
        public override int Id { get; set; }

        private IArea curso;
        public override IArea AreaNegocio { get{
            return this.curso;
        }
            set
            {
                if (value is ICurso)
                {
                    this.curso = value;
                }
                else
                {
                    throw new DominioException("Um tipo de solicitação de curso precisa de um curso.");
                }
            }
        }
    }
}